package com.lotus.lqmp.service.dao;

import com.lotus.lqmp.service.controller.vo.req.ReviewPlanQueryReq;
import com.lotus.lqmp.service.dao.entity.ReviewPlanDo;
import com.lotus.lqmp.service.domain.ReviewPlanDeletedQueryDomain;
import com.lotus.lqmp.service.domain.ReviewPlanQueryDomain;
import com.lotus.platform.common.dao.MyMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 评审计划表 Mapper 接口
 * </p>
 * @author Shiheng.Liu1
 * @since 2022-03-29
 */
public interface ReviewPlanMapper extends MyMapper<ReviewPlanDo> {

    /**
     * 未删除模板当页数据查询
     * @param queryInfo
     * @param start
     * @param pageSize
     * @return
     */
    List<ReviewPlanQueryDomain> listForReviewPlanPage(@Param("queryInfo") ReviewPlanQueryReq queryInfo,
        @Param("pageStart") long start, @Param("pageSize") long pageSize);

    /**
     * 查询未分页模板数据总数
     * @param queryInfo
     * @return
     */
    Long countForReviewPlanPage(@Param("queryInfo") ReviewPlanQueryReq queryInfo);

    /**
     * 删除的评审计划分页查询
     * @param queryInfo
     * @param start
     * @param pageSize
     * @return
     */
    List<ReviewPlanDeletedQueryDomain> listForDeletedReviewPlanPage(@Param("queryInfo") ReviewPlanQueryReq queryInfo,
        @Param("pageStart") long start, @Param("pageSize") long pageSize);

    /**
     * 获取指定评审计划中不在进行评审得总数
     * @param ids
     * @param auditStatus
     * @return
     */
    Long countNotGoingPlan(@Param("ids") List<Long> ids, @Param("auditStatus") Integer auditStatus);

    /**
     * 删除的评审计划总数统计
     * @param queryInfo
     * @return
     */
    Long countForDeletedReviewPlanPage(@Param("queryInfo") ReviewPlanQueryReq queryInfo);
}
